#include <common/stylemanage/stylesheetmanage.h>
#include "stylejsonutil/stylejsonutil_p.h"
#include <QDebug>

using namespace qss_data;
StyleSheetManage::StyleSheetManage() = default;

StyleSheetManage::~StyleSheetManage() = default;

StyleSheetManage& StyleSheetManage::instance()
{
	static StyleSheetManage instance;
	return instance;
}

bool StyleSheetManage::qssFormatByJson(QString& qss, const QString& js)
{
	if (qss.isEmpty())
	{
		qWarning() << "qss is empty!";
		return false;
	}
	if (js.isEmpty())return true;
	//.
	StQssData data;
	if (getQssDataByJson(js, data))
	{
		qss.replace("/*FONT_WEIGHT*/", QString::number(data.font_weight));
		qss.replace("/*FONT_SIZE*/", data.font_size);
		qss.replace("/*FONT_STYLE*/", data.font_style);
		return true;
	}

	return false;
}

bool StyleSheetManage::getQssDataByJson(const QString& js, StQssData& data)
{
	if (js.isEmpty())
	{
		qWarning() << "js is empty!";
		return false;
	}
	QList<StQssData> lsData;
	if (!StyleJsonUtilPrivate::getQssDataFromJson(js, lsData))
	{
		qWarning() << "get qss data from json failed!";
		return false;
	}
	if (!lsData.isEmpty())
	{
		data = lsData.first();
		return true;
	}
	return false;
}

